package hcn.api.service.api.hospitalappointment;

import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import hcn.protocol.ods.hospitalAppointment.*;

import java.util.List;
import java.util.Map;

/**
 * Created by ChenJij on 2023/7/19.
 */
public interface IHospitalAppointmentService {
    @RpcService
    HospitalElectronicProofResponse getHospitalElectronicProof(HospitalElectronicProofRequest request);

    @RpcService
    HospitalElectronicProofResponse getXmlHospitalElectronicProof(HospitalElectronicProofRequest request) throws Exception;

    @RpcService
    List<HospitalDeptInfoResponse> getXmlHospitalDeptInfo(HospitalDeptInfoRequest request) throws Exception;

    @RpcService
    List<HospitalDoctorInfo> getXmlHospitalDoctorInfo(HospitalDoctorInfoRequest request) throws Exception;

    @RpcService
    Map<String, Object> appointmentSubmit(AppointmentSubmitRequest request);

    @RpcService
    Map<String, Object> appointmentXmlSubmit(AppointmentSubmitRequest request) throws Exception;

    @RpcService
    Map<String, Object> appointmentCancel(AppointmentCancelRequest request);

    @RpcService
    Map<String, Object> appointmentXmlCancel(AppointmentCancelRequest request) throws Exception;

    @RpcService
    DischargeSettlementInfoResponse getDischargeSettlementInfo(DischargeSettlementInfoRequest request) throws ControllerException;

    @RpcService
    PaySettlementResponse paySettlement(PaySettlementRequest request) throws ControllerException;

    @RpcService
    DischargeCostDetailResponse getDischargeCostDetail(DischargeCostDetailRequest request) throws ControllerException;

    @RpcService
    PrecalculatedFeeResponse getPrecalculatedFee(PrecalculatedFeeRequest request) throws ControllerException;
}